#include <iostream>
using namespace std;

/**
 * 1. 成员函数中可以使用 this 指针
 * 2. this 指针可以作为成员函数返回值
*/
class Array
{
public:
    Array(int Len = 0) : Len(Len) { cout << "Array()" << endl; }
    ~Array() { cout << "~Array()" << endl; }
    // Array *setLen(int Len) {
    //     this->Len = Len;
    //     return this;
    // }
    Array &setLen(int Len) {
        this->Len = Len;
        return *this;
    }
    int getLen() { return Len; }
    void print() {
        cout << "Len = " << Len << endl;
    }
private:
    int Len;
};

void stackInstantiation()
{
    Array arr1(5);
    arr1.print();
    arr1.setLen(7).print();
}

int main()
{
    stackInstantiation();
    return 0;
}